/**
 * 应用配置
 */

// 获取环境变量，如果没有则使用默认值
const getEnvValue = (key, defaultValue) => {
  return import.meta.env[key] || defaultValue
}

export const config = {
  // 应用信息
  app: {
    title: getEnvValue('VITE_APP_TITLE', '超市商品溯源管理系统'),
    version: getEnvValue('VITE_APP_VERSION', '1.0.0'),
    description: '安全可靠的商品追踪解决方案'
  },

  // API配置
  api: {
    baseURL: getEnvValue('VITE_API_BASE_URL', '/api'),
    timeout: 10000,
    retryCount: 3
  },

  // 上传配置
  upload: {
    sizeLimit: parseInt(getEnvValue('VITE_UPLOAD_SIZE_LIMIT', '10')) * 1024 * 1024, // 转换为字节
    allowTypes: ['image/jpeg', 'image/png', 'image/gif', 'application/pdf'],
    maxCount: 5
  },

  // 分页配置
  pagination: {
    pageSize: parseInt(getEnvValue('VITE_PAGE_SIZE', '20')),
    pageSizes: [10, 20, 50, 100],
    layout: 'total, sizes, prev, pager, next, jumper'
  },

  // 存储配置
  storage: {
    tokenKey: getEnvValue('VITE_TOKEN_KEY', 'access_token'),
    userKey: getEnvValue('VITE_USER_KEY', 'user_info'),
    settingsKey: 'app_settings',
    themeKey: 'app_theme'
  },

  // 开发配置
  dev: {
    useMock: getEnvValue('VITE_USE_MOCK', 'true') === 'true',
    showPerformance: getEnvValue('VITE_SHOW_PERFORMANCE', 'true') === 'true',
    enableConsole: import.meta.env.DEV
  },

  // 主题配置
  theme: {
    defaultTheme: 'light',
    themes: ['light', 'dark'],
    primaryColor: '#2563eb'
  },

  // 功能开关
  features: {
    usePWA: getEnvValue('VITE_USE_PWA', 'false') === 'true',
    enablePrint: true,
    enableExport: true,
    enableImport: true
  },

  // 路由配置
  router: {
    mode: 'history',
    strict: false,
    caseSensitive: false
  },

  // 安全配置
  security: {
    tokenExpiry: 24 * 60 * 60 * 1000, // 24小时
    maxLoginAttempts: 5,
    lockoutDuration: 15 * 60 * 1000 // 15分钟
  },

  // 界面配置
  ui: {
    sidebarWidth: 240,
    headerHeight: 64,
    footerHeight: 64,
    borderRadius: 6,
    animation: {
      duration: 300,
      easing: 'ease-in-out'
    }
  },

  // 国际化配置
  i18n: {
    defaultLocale: 'zh-CN',
    fallbackLocale: 'en-US',
    availableLocales: ['zh-CN', 'en-US']
  },

  // 缓存配置
  cache: {
    maxAge: 5 * 60 * 1000, // 5分钟
    maxSize: 100,
    enableServiceWorker: false
  },

  // 通知配置
  notification: {
    position: 'top-right',
    duration: 3000,
    showClose: true,
    center: false
  },

  // 表格配置
  table: {
    border: true,
    stripe: true,
    fit: true,
    highlightCurrentRow: true,
    rowKey: 'id'
  },

  // 表单配置
  form: {
    labelWidth: '120px',
    labelPosition: 'right',
    size: 'default',
    validateOnRuleChange: false
  }
}

// 冻结配置对象，防止被修改
Object.freeze(config)

export default config 